package dto

type VmrInterfaceResponse struct {
	Code int         `json:"code"`
	Data interface{} `json:"data"`
}

type SystemStorage struct {
	Size int `json:"size"`
}

type BoxMetaData struct {
	BoxId     string      `json:"box_id"`
	BoxName   string      `json:"box_name"`
	BoxType   string      `json:"box_type"`
	SubModel  string      `json:"sub_model"`
	Ip        string      `json:"ip"`
	WebPort   int         `json:"web_port"`
	Longitude string      `json:"longitude"`
	Latitude  string      `json:"latitude"`
	Extra     interface{} `json:"extra"`
}

type IPV4Address struct {
	Address     string   `json:"address"`                // ipv4地址
	DNS         []string `json:"dns"`                    // dns 服务器
	Gateway     string   `json:"gateway"`                // ipv4 网关
	Netmask     string   `json:"netmask"`                // ipv4 掩码
	NetworkType string   `json:"network_type,omitempty"` // 网口类型，eth0/eth1
	DHCP        bool     `json:"dhcp"`                   // 是否打开dhcp
}

type NetworkSetting struct {
	DHCP        bool   `json:"dhcp"`         // 是否打开dhcp
	NetworkType string `json:"network_type"` // 网口类型，eth0/eth1
}

type PhysicalProperties struct {
	Mac         string `json:"mac"`                    // mac地址
	Mtu         int    `json:"mtu"`                    // MTU
	NetworkType string `json:"network_type,omitempty"` // 网口类型，eth0/eth1
}

type SystemInfo struct {
	DeviceModel        string `json:"device-model"`         // 设备型号
	DeviceSerialNumber string `json:"device-serial-number"` // 设备序列号
	HardDiskInfo       string `json:"hard-disk-info"`       // 硬盘信息
	HardwareVersion    string `json:"hardware-version"`     // 硬件版本
}

type RebootParams struct {
	Delay int `json:"delay"` // 重启前的等待时间(s)
}

type UpdateSdkParams struct {
	Url string `json:"url"` // sdk包地址
}

type TimeSyncManualParams struct {
	Time string `json:"time"` // 系统时间
}

type TimeSyncNtp struct {
	Domain   string `json:"domain"`   // ntp服务的域名
	Interval int    `json:"interval"` // 与ntp服务同步时间的时间间隔
	Port     int    `json:"port"`     // 端口
}

type TimeSyncTimezone struct {
	Timezone string `json:"timezone"` // 时区
}

type TimeSyncTimezoneList struct {
	Timezone []string `json:"timezone"` // 时区列表
}

type LedParams struct {
	Led    string `json:"led"`    // 需要控制的灯，red/yellow
	Status string `json:"status"` // 状态，on/off
}

type NetworkNatReq struct {
	CameraIp   string `json:"camera_ip"`   // 相机ip
	CameraPort int    `json:"camera_port"` // 相机端口
	BoxIp      string `json:"box_ip"`      // 盒子ip
}

type NetworkNatResp struct {
	NatAddress string `json:"nat_address"` // 映射后的地址
}

type Camera struct {
	Port      int    `json:"port,omitempty"`       // 端口
	Account   string `json:"account,omitempty"`    // 账户
	Password  string `json:"password,omitempty"`   // 密码
	URLSuffix string `json:"url_suffix,omitempty"` // 相机界面URL后缀
	Status    int    `json:"status"`               // 状态，0:未知/1:使能且连接状态/2:使能且未连接状态/3:不使能状态
	StreamURL string `json:"stream_url,omitempty"` // 流播放地址
	CameraInfo
}

type CameraInfo struct {
	IP  string `json:"ip,omitempty"`  // ip地址
	MAC string `json:"mac,omitempty"` // MAC
	SN  string `json:"sn,omitempty"`  // SN
}

type VmrModelStatus struct {
	BoxInfo      BoxInfo     `json:"boxInfo"`      // 盒子信息
	DeviceStatus interface{} `json:"deviceStatus"` // 设备信息
	CameraStatus interface{} `json:"cameraStatus"` // 相机信息
}

type Task map[string]interface{}
type Extra map[string]interface{}
type SideCamera map[string]interface{}
type CommonParam map[string]interface{}
